package com.midongtec.mduisdkdemo;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;

import com.mdad.sdk.mduisdk.AdManager;
import com.mdad.sdk.mduisdk.GetAdListListener;
import com.mdad.sdk.mduisdk.RewardListener;
import com.mdad.sdk.mduisdk.ad.AdData;

import java.util.List;

public class MdAdActivity extends AppCompatActivity {

    private static final String TAG = "MdAdActivity";

    private Activity mActivity;
    private Fragment commonAdFragment;
//
//    private TTAdNative mTTAdNative;
//    private TTRewardVideoAd mttRewardVideoAd;
//
//    private TTNativeExpressAd mTTAd;
//
//    private boolean isCsjLoaded;
//
//    private ExpressRewardVideoAD mRewardVideoAD;
//    private boolean isGdtLoaded;
//
//    private KsRewardVideoAd mRewardVideoAd;
//    private boolean isKsLoaded;
//
//    public static void initKsSdk(Context appContext, String appid) {
//        KsAdSDK.init(appContext, new SdkConfig.Builder()
//                .appId(appid) // 测试aapId，请联系快⼿平台申请正式AppId，必填
//                .appName(AppUtils.getAppName(appContext)) // 测试appName，请填写您应⽤的名称，⾮
//                .showNotification(true) // 是否展示下载通知栏
//                .debug(true) // 是否开启sdk 调试⽇志 可选
//                .build());
//    }
//
//    //------------------ 快手 start-----------------------------
//
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_md_ad);
        mActivity = this;
//
//        initCsjAd("5151660");//测试id
//        initGdtAd("1101152570");//测试id
//        initKsSdk(mActivity, "90009");//测试id
//
//
//        commonAdFragment = AdManager.getInstance(this).getAdFragment(6);

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.frame_layout, commonAdFragment);
        transaction.commitAllowingStateLoss();
//
//        //设置广告事件监听
//        commonAdFragment.setMdRewardAdAction(new MdRewardAdAction() {
//            @Override
//            public void loadRewardAd(String id, int adType) {//加载  id:广告位id   adType：广告厂商 0-穿山甲  1-优量汇  2-快手
//                Log.e(TAG, "loadAd: id"+id+"   adType:"+adType);
//                if (adType == 0) {
//                    loadCsjVideoAd(id, false);
//                } else if (adType == 1) {
//                    loadGdtViideoAD(id, false);
//                } else {
//                    loadKsVideoAd(id, false);
//                }
//
//            }
//
//            @Override
//            public void loadAndShowRewardAd(String id, int adType) {//展示  id:广告位id   adType：广告厂商 0-穿山甲  1-优量汇  2-快手
//                Log.e(TAG, "loadAndShowAd: id"+id+"   adType:"+adType);
//                if (adType == 0) {
//                    showCsjVideoAd(id);
//                } else if (adType == 1) {
//                    showGdtVideoAd(id);
//                } else {
//                    showKsVideoAd(id);
//                }
//            }
//
//            @Override
//            public void loadAndShowntersitialAd(String id, String adType) {
//                if ("CSJ".equals(adType)) { //穿山甲或topon
//                    loadCsjExpressAd(id);
//                } else if ("YLH".equals(adType)) {  //优量汇
//
//                } else if ("KS".equals(adType)) {  //快手
//
//                }
//
//            }
//
//
//            @Override
//            public boolean videoCache() {//是否有缓存
//                return isCsjLoaded || isGdtLoaded || isKsLoaded;
//            }
//        });
    }
//
//    public void loadKsVideoAd(final String adid, final boolean isNeedShow) {
//        mRewardVideoAd = null;
//        KsScene scene = null;
//        try {
//            KsScene.Builder builder = new KsScene.Builder(Long.parseLong(adid))
//                    .screenOrientation(SdkConfig.SCREEN_ORIENTATION_PORTRAIT);
//            scene = builder.build();
//        } catch (NumberFormatException e) {
//            e.printStackTrace();
//            commonAdFragment.onLoadFail(e.getMessage(), 2);
//            return;
//        }
//        KsAdSDK.getLoadManager().loadRewardVideoAd(scene, new KsLoadManager.RewardVideoAdListener() {
//            @Override
//            public void onError(int code, String msg) {
//                Log.i(TAG, "onError: code = " + code + " msg = " + msg);
//                commonAdFragment.onLoadFail(msg, 2);
//            }
//
//            @Override
//            public void onRequestResult(int adNumber) {
//                Log.i(TAG, "onRequestResult: adNumber = " + adNumber);
//            }
//
//            @Override
//            public void onRewardVideoAdLoad(@Nullable List<KsRewardVideoAd> adList) {
//                if (adList != null && adList.size() > 0) {
//                    mRewardVideoAd = adList.get(0);
//                    commonAdFragment.onLoadSuccess(1);
//                    if (isNeedShow) {
//                        showKsVideoAd(adid);
//                    }
//                    isKsLoaded = true;
//                }
//            }
//        });
//    }
//
//    // 2.展示激励视频广告，通过步骤1获取的KsRewardVideoAd对象，判断缓存有效，则设置监听并展示
//    private void showKsVideoAd(String adid) {
//        if (mRewardVideoAd != null && mRewardVideoAd.isAdEnable()) {
//            mRewardVideoAd
//                    .setRewardAdInteractionListener(new KsRewardVideoAd.RewardAdInteractionListener() {
//                        @Override
//                        public void onAdClicked() {
//                            Log.i(TAG, "onClick: ");
//                            commonAdFragment.onClick(2);
//                        }
//
//                        @Override
//                        public void onPageDismiss() {
//                            Log.i(TAG, "onClose: ");
//                            commonAdFragment.onClose(2);
//                        }
//
//                        @Override
//                        public void onVideoPlayError(int code, int extra) {
//                            Log.i(TAG, "onVideoPlayError 激励视频广告播放出错:" + code);
//                        }
//
//                        @Override
//                        public void onVideoPlayEnd() {
//                            Log.i(TAG, "onVideoComplete: ");
//                            commonAdFragment.onComplete(2);
//                        }
//
//                        @Override
//                        public void onVideoPlayStart() {
//                            Log.i(TAG, "onShow: ");
//                            commonAdFragment.onShow(2);
//                            isKsLoaded = false;
//                        }
//
//                        @Override
//                        public void onRewardVerify() {
//                            Log.i(TAG, "激励视频广告获取激励");
//                        }
//                    });
//            mRewardVideoAd.showRewardVideoAd(mActivity, null);
//        } else {
//            Log.i(TAG, "暂无可用激励视频广告，请等待缓存加载或者重新刷新");
//            loadKsVideoAd(adid, true);
//        }
//    }
//
//    //------------------ 快手 end-----------------------------
//
//
//    //------------------ 优量汇 start-----------------------------
//
//    private void initGdtAd(String appid) {
//        GDTADManager.getInstance().initWith(mActivity, appid);//测试appid
//    }
//
//    private void loadGdtViideoAD(final String adid, final boolean isNeedShow) {
//        if (mRewardVideoAD == null) {
//            mRewardVideoAD = new ExpressRewardVideoAD(mActivity, adid, new ExpressRewardVideoAdListener() {
//                @Override
//                public void onAdLoaded() {
//                    Log.i(TAG,
//                            "onAdLoaded: VideoDuration " + mRewardVideoAD.getVideoDuration() + ", ECPMLevel " +
//                                    mRewardVideoAD.getECPMLevel());
//                }
//
//                @Override
//                public void onVideoCached() {
//                    // 在视频缓存完成之后再进行广告展示，以保证用户体验
//                    Log.i(TAG, "onVideoCached: ");
//                    commonAdFragment.onLoadSuccess(1);
//                    isGdtLoaded = true;
//                    if (isNeedShow) {
//                        showGdtVideoAd(adid);
//                    }
//
//                }
//
//                @Override
//                public void onShow() {
//                    Log.i(TAG, "onShow: ");
//                    commonAdFragment.onShow(1);
//                    isGdtLoaded = false;
//                }
//
//                @Override
//                public void onExpose() {
//                    Log.i(TAG, "onExpose: ");
//                }
//
//                /**
//                 * 模板激励视频触发激励
//                 *
//                 * @param map 若选择了服务端验证，可以通过 ServerSideVerificationOptions#TRANS_ID 键从 map 中获取此次交易的 id；若未选择服务端验证，则不需关注 map 参数。
//                 */
//                @Override
//                public void onReward(Map<String, Object> map) {
//                    Object o = map.get(ServerSideVerificationOptions.TRANS_ID); // 获取服务端验证的唯一 ID
//                    Log.i(TAG, "onReward " + o);
//                }
//
//                @Override
//                public void onClick() {
//                    Log.i(TAG, "onClick: ");
//                    commonAdFragment.onClick(1);
//                }
//
//                @Override
//                public void onVideoComplete() {
//                    Log.i(TAG, "onVideoComplete: ");
//                    commonAdFragment.onComplete(1);
//                }
//
//                @Override
//                public void onClose() {
//                    Log.i(TAG, "onClose: ");
//                    commonAdFragment.onClose(1);
//                }
//
//                @Override
//                public void onError(AdError error) {
//                    Log.i(TAG, "onError: code = " + error.getErrorCode() + " msg = " + error.getErrorMsg());
//                    commonAdFragment.onLoadFail(error.getErrorMsg(), 1);
//                }
//            });
//        }
//        mRewardVideoAD.setVolumeOn(true);
//        mRewardVideoAD.loadAD();
//    }
//
//    public void showGdtVideoAd(String adid) {
//        if (isGdtLoaded) {
//            mRewardVideoAD
//                    .showAD(mActivity);
//        } else {
//            loadGdtViideoAD(adid, true);
//        }
//    }
//
//    //------------------ 优量汇 end-----------------------------
//
//
//    //------------------ 穿山甲广告 start-----------------------------
//
//    private void initCsjAd(String appid) {
//        //强烈建议在应用对应的Application#onCreate()方法中调用，避免出现content为null的异常
//        TTAdSdk.init(getApplicationContext(),
//                new TTAdConfig.Builder()
//                        .appId(appid)
//                        .useTextureView(false) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景，可以使用TextureView
//                        .allowShowNotify(true) //是否允许sdk展示通知栏提示
//                        .debug(true) //测试阶段打开，可以通过日志排查问题，上线时去除该调用
//                        .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合
//                        .supportMultiProcess(false) //是否支持多进程，true支持
//                        //.httpStack(new MyOkStack3())//自定义网络库，demo中给出了okhttp3版本的样例，其余请自行开发或者咨询工作人员。
//                        .build());
//        mTTAdNative = TTAdManagerHolder.get().createAdNative(mActivity);
//    }
//
//    private void loadCsjVideoAd(final String adid, final boolean isNeedShow) {
//        //step4:创建广告请求参数AdSlot,具体参数含义参考文档
//        AdSlot adSlot;
//        adSlot = new AdSlot.Builder()
//                .setCodeId(adid)
//                //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景，只要设置的值大于0即可
//                .setExpressViewAcceptedSize(500, 500)
//                .build();
//        //step5:请求广告
//        mTTAdNative.loadRewardVideoAd(adSlot, new TTAdNative.RewardVideoAdListener() {
//            @Override
//            public void onError(int code, String message) {
//                Log.e(TAG, "Callback --> onError: " + code + ", " + String.valueOf(message));
//                commonAdFragment.onLoadFail(message, 0);
//                isCsjLoaded = false;
//            }
//
//            //视频广告加载后，视频资源缓存到本地的回调，在此回调后，播放本地视频，流畅不阻塞。
//            @Override
//            public void onRewardVideoCached() {
//                Log.e(TAG, "Callback --> onRewardVideoCached");
//                commonAdFragment.onLoadSuccess(0);
//                isCsjLoaded = true;
//                if (isNeedShow) {
//                    showCsjVideoAd(adid);
//                }
//            }
//
//            public void onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd) {
//                Log.e(TAG, "Callback --> onRewardVideoCached");
//                commonAdFragment.onLoadSuccess(0);
//                isCsjLoaded = true;
//                if (isNeedShow) {
//                    showCsjVideoAd(adid);
//                }
//            }
//
//
//            //视频广告的素材加载完毕，比如视频url等，在此回调后，可以播放在线视频，网络不好可能出现加载缓冲，影响体验。
//            @Override
//            public void onRewardVideoAdLoad(TTRewardVideoAd ad) {
//                Log.e(TAG, "Callback --> onRewardVideoAdLoad");
//                mttRewardVideoAd = ad;
//                mttRewardVideoAd.setRewardAdInteractionListener(new TTRewardVideoAd.RewardAdInteractionListener() {
//
//                    @Override
//                    public void onAdShow() {
//                        Log.d(TAG, "Callback --> rewardVideoAd show");
//                        commonAdFragment.onShow(0);
//                        isCsjLoaded = false;
//                    }
//
//                    @Override
//                    public void onAdVideoBarClick() {
//                        Log.d(TAG, "Callback --> rewardVideoAd bar click");
//                        commonAdFragment.onClick(0);
//                    }
//
//                    @Override
//                    public void onAdClose() {
//                        Log.d(TAG, "Callback --> rewardVideoAd close");
//                        commonAdFragment.onClose(0);
//                    }
//
//                    //视频播放完成回调
//                    @Override
//                    public void onVideoComplete() {
//                        Log.d(TAG, "Callback --> rewardVideoAd complete");
//                        commonAdFragment.onComplete(0);
//                    }
//
//                    @Override
//                    public void onVideoError() {
//                        Log.e(TAG, "Callback --> rewardVideoAd error");
//                    }
//
//                    //视频播放完成后，奖励验证回调，rewardVerify：是否有效，rewardAmount：奖励梳理，rewardName：奖励名称
//                    @Override
//                    public void onRewardVerify(boolean rewardVerify, int rewardAmount, String rewardName, int errorCode, String errorMsg) {
//                        String logString = "verify:" + rewardVerify + " amount:" + rewardAmount +
//                                " name:" + rewardName + " errorCode:" + errorCode + " errorMsg:" + errorMsg;
//                        Log.e(TAG, "Callback --> " + logString);
//                    }
//
//                    @Override
//                    public void onSkippedVideo() {
//                        Log.e(TAG, "Callback --> rewardVideoAd has onSkippedVideo");
//                        commonAdFragment.onSkip(0);
//                    }
//                });
//            }
//        });
//    }
//
//
//    public void showCsjVideoAd(String id) {
//        if (mttRewardVideoAd != null && isCsjLoaded) {
//            mttRewardVideoAd.showRewardVideoAd(mActivity, TTAdConstant.RitScenes.CUSTOMIZE_SCENES, "scenes_test");
//            mttRewardVideoAd = null;
//        } else {
//            loadCsjVideoAd(id, true);
//        }
//    }
//
//    private void loadCsjExpressAd(String codeId) {
//        if (mTTAdNative == null) {
//            mTTAdNative = TTAdManagerHolder.get().createAdNative(mActivity);
//        }
//        //step4:创建广告请求参数AdSlot,具体参数含义参考文档
//        AdSlot adSlot = new AdSlot.Builder()
//                .setCodeId(codeId) //广告位id
//                .setAdCount(1) //请求广告数量为1到3条
//                .setExpressViewAcceptedSize(300, 300) //期望模板广告view的size,单位dp
//                .build();
//        //step5:请求广告，对请求回调的广告作渲染处理
//        mTTAdNative.loadInteractionExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() {
//            @Override
//            public void onError(int code, String message) {
//                commonAdFragment.onInterstitialLoadFail("CSJ",message);
//            }
//
//            @Override
//            public void onNativeExpressAdLoad(List<TTNativeExpressAd> ads) {
//                if (ads == null || ads.size() == 0) {
//                    return;
//                }
//                mTTAd = ads.get(0);
//                bindAdListener(mTTAd);
//                commonAdFragment.onInterstitialLoadSuccess("CSJ");
////                callH5Action("receiveInterstitialResult('load_success','"+adSource+"')");
//                showAd();
//            }
//        });
//    }
//
//    private void bindAdListener(TTNativeExpressAd ad) {
//        ad.setExpressInteractionListener(new TTNativeExpressAd.AdInteractionListener() {
//            @Override
//            public void onAdDismiss() {
//                commonAdFragment.onInterstitialClose("CSJ");
//            }
//
//            @Override
//            public void onAdClicked(View view, int type) {
//                commonAdFragment.onInterstitialClick("CSJ");
//            }
//
//            @Override
//            public void onAdShow(View view, int type) {
//                commonAdFragment.onInterstitialDisplay("CSJ");
//            }
//
//            @Override
//            public void onRenderFail(View view, String msg, int code) {
//            }
//
//            @Override
//            public void onRenderSuccess(View view, float width, float height) {
//                //返回view的宽高 单位 dp
//                mTTAd.showInteractionExpressAd(mActivity);
//
//            }
//        });
//    }
//
//
//    private void showAd() {
//        if (mTTAd != null) {
//            mTTAd.render();
//        }else {
//            TToast.show(mActivity,"请先加载广告");
//        }
//    }
//
//    //------------------ 穿山甲广告 end-----------------------------
//
//
//    @Override
//    public void onBackPressed() {
//        if (commonAdFragment != null) {
//            commonAdFragment.setBackPressListener(new BackPressListener() {
//                @Override
//                public void onCancel() {
//
//                }
//
//                @Override
//                public void onFinish() {
//                    finish();
//                }
//            });
//        } else {
//            super.onBackPressed();
//        }
//    }
}